package delphorm.web.validateur;



import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

import delphorm.entite.personne.DroitGroupe;
import delphorm.service.personne.IGroupeCollectif;
import delphorm.service.personne.IPersonne;



public class AjouterUtilisateurGroupeCollectifValidateur implements Validator {

	private IGroupeCollectif serviceGroupeCollectif;
	private IPersonne servicePersonne;
	
	public boolean supports(Class classe) {
		
		return classe.isAssignableFrom(DroitGroupe.class);
	}

	public void validate(Object obj, Errors errors) {
		
		DroitGroupe droit = (DroitGroupe)obj;
		if(droit.getVoirUtilisateursGroupe()== null)
		{
			errors.rejectValue("voirUtilisateursGroupe","AjouterUtilisateurGroupeCollectif.obligatoire");
		}
		
		if(droit.getModifierUtilisateursGroupe()== null)
		{
			errors.rejectValue("modifierUtilisateursGroupe","AjouterUtilisateurGroupeCollectif.obligatoire");
		}
		
		if(droit.getSupprimerUtilisateursGroupe()== null)
		{
			errors.rejectValue("supprimerUtilisateursGroupe","AjouterUtilisateurGroupeCollectif.obligatoire");
		}
		
		if(droit.getAjouterUtilisateurGroupe()== null)
		{
			errors.rejectValue("ajouterUtilisateurGroupe","AjouterUtilisateurGroupeCollectif.obligatoire");
		}
		
		if(droit.getSupprimerUtilisateurGroupe()== null)
		{
			errors.rejectValue("supprimerUtilisateurGroupe","AjouterUtilisateurGroupeCollectif.obligatoire");
		}
		
		if(droit.getSupprimerGroupe()== null)
		{
			errors.rejectValue("supprimerGroupe","AjouterUtilisateurGroupeCollectif.obligatoire");
		}
		
		if(droit.getModifierGroupe()== null)
		{
			errors.rejectValue("supprimerModifierGroupe","AjouterUtilisateurGroupeCollectif.obligatoire");
		}
		
		//vérification du groupe
		if(droit.getGroupe().getNom() == null || droit.getGroupe().getNom().trim().equals(""))
			errors.rejectValue("groupe.nom","AjouterUtilisateurGroupeCollectif.groupe.nom.obligatoire");
		if(!serviceGroupeCollectif.existeParNom(droit.getGroupe().getNom()))
			errors.rejectValue("groupe.nom","AjouterUtilisateurGroupeCollectif.groupe.nom.existepas");
		
		//vérification de l'utilisateur
		if(droit.getUtilisateur().getLogin()==null || droit.getUtilisateur().getLogin().trim().equals(""))
				errors.rejectValue("utilisateur.login","AjouterUtilisateurGroupeCollectif.utilisateur.login.obligatoire");
		if(!servicePersonne.existeParLogin(droit.getUtilisateur().getLogin()))
			errors.rejectValue("utilisateur.login","AjouterUtilisateurGroupeCollectif.utilisateur.login.existepas");
		
		
	}

	
	public IPersonne getServicePersonne() {
		return servicePersonne;
	}

	public void setServicePersonne(IPersonne servicePersonne) {
		this.servicePersonne = servicePersonne;
	}
	
	public IGroupeCollectif getServiceGroupeCollectif() {
		return serviceGroupeCollectif;
	}

	public void setServiceGroupeCollectif(IGroupeCollectif serviceGroupeCollectif) {
		this.serviceGroupeCollectif = serviceGroupeCollectif;
	}

}
